home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format CD 38 / Amiga Format CD38 (1999-03-15)(Future Publishing)(GB)(Track 1 of 3)[!][issue 1999-04].iso / -seriously_amiga- / programming / other / cyberxxxsrc / cyberqt / txt / cyberqtglobals.mod < prev    next >
Text File  |  1999-02-08  |  8KB  |  251 lines

  1. MODULE  CyberQTGlobals;
  2.  
  3. (* $IFNOT DEBUG *)
  4.   (* $StackChk- $OvflChk- $RangeChk- $CaseChk- $ReturnChk- $NilChk- $TypeChk- $OddChk- $ClearVars- *)
  5. (* $END *)
  6.  
  7. (* /// ------------------------------- "IMPORT" -------------------------------- *)
  8. IMPORT  cgfx:=CyberGraphics,
  9.         d:=Dos,
  10.         e:=Exec,
  11.         es:=ExecSupport,
  12.         fp:=FixedPoint,
  13.         gfx:=Graphics,
  14.         io:=AsyncIOSupport2;
  15. (* \\\ ------------------------------------------------------------------------- *)
  16.  
  17. (* /// -------------------------------- "TYPE" --------------------------------- *)
  18. TYPE    Matrix * =ARRAY 3,3 OF fp.FixedPoint32;
  19.  
  20.         AtomHeader * =STRUCT
  21.             size * : LONGINT;
  22.             id * : LONGINT;
  23.         END;
  24.  
  25.         HeaderDummy * =STRUCT
  26.             version * : LONGINT;
  27.             creation * : LONGINT;
  28.             modification * : LONGINT;
  29.         END;
  30.  
  31.         MovieHeader * =STRUCT(head * : HeaderDummy)
  32.             timeScale * : LONGINT;
  33.             duration * : LONGINT;
  34.             rate * : fp.FixedPoint32;
  35.             volume * : fp.FixedPoint16;
  36.             reserved: ARRAY 10 OF CHAR;
  37.             matrix * : Matrix;
  38.             previewTime * : LONGINT;
  39.             previewDuration * : LONGINT;
  40.             posterTime * : LONGINT;
  41.             selectTime * : LONGINT;
  42.             selectDuration * : LONGINT;
  43.             currentTime * : LONGINT;
  44.             nextTrackID * : LONGINT;
  45.         END;
  46.  
  47.         ColorTable * =STRUCT
  48.             tableSeed * : LONGINT;
  49.             flags * : SET;
  50.             size * : INTEGER;
  51.         END;
  52.  
  53.         TrackHeader * =STRUCT(head * : HeaderDummy)
  54.             trackID * : LONGINT;
  55.             reserved0: LONGINT;
  56.             duration * : LONGINT;
  57.             reserved1: LONGINT;
  58.             reserved2: LONGINT;
  59.             layer * : INTEGER;
  60.             altGroup * : INTEGER;
  61.             volume * : fp.FixedPoint16;
  62.             reserved3: INTEGER;
  63.             matrix * : Matrix;
  64.             width * : fp.FixedPoint32;
  65.             height * : fp.FixedPoint32;
  66.         END;
  67.  
  68.         MediaHeader * =STRUCT(head * : HeaderDummy)
  69.             timeScale * : LONGINT;
  70.             duration * : LONGINT;
  71.             language * : INTEGER;
  72.             quality * : INTEGER;
  73.         END;
  74.  
  75.         HandlerReference * =STRUCT
  76.             version * : LONGINT;
  77.             type * : LONGINT;
  78.             subType * : LONGINT;
  79.             manufacturer * : LONGINT;
  80.             flags * : LONGINT;
  81.             flagMask * : LONGINT;
  82.             name * : e.STRING;
  83.         END;
  84.  
  85.         VideoMediaHeader * =STRUCT
  86.             version * : LONGINT;
  87.             graphicsMode * : INTEGER;
  88.             opColor * : ARRAY 3 OF INTEGER;
  89.         END;
  90.  
  91.         SoundMediaHeader * =STRUCT
  92.             version * : LONGINT;
  93.             balance * : INTEGER;
  94.             reserved: INTEGER;
  95.         END;
  96.  
  97.         DescriptionHeadPtr * =UNTRACED POINTER TO DescriptionHead;
  98.         DescriptionHead * =STRUCT
  99.             size * : LONGINT;
  100.             dataFormat * : LONGINT;
  101.             reserved: ARRAY 6 OF CHAR;
  102.             index * : INTEGER;
  103.         END;
  104.  
  105.         DummyDescriptionPtr * =UNTRACED POINTER TO DummyDescription;
  106.         DummyDescription * =STRUCT(head * : DescriptionHead);
  107.             data * : LONGINT;
  108.         END;
  109.  
  110.         VideoDescriptionPtr * =UNTRACED POINTER TO VideoDescription;
  111.         VideoDescription * =STRUCT(head * : DescriptionHead)
  112.             version * : INTEGER;
  113.             revision * : INTEGER;
  114.             vendor * : LONGINT;
  115.             tempQuality * : LONGINT;
  116.             spatQuality * : LONGINT;
  117.             width * : INTEGER;
  118.             height * : INTEGER;
  119.             horizRes * : fp.FixedPoint32;
  120.             vertRes * : fp.FixedPoint32;
  121.             dataSize * : LONGINT;
  122.             frameCount * : INTEGER;
  123.             compression * : ARRAY 32 OF CHAR;
  124.             depth * : INTEGER;
  125.             colorTableID * : INTEGER;
  126.             start * : LONGINT;
  127.             cFlag *  : SET;
  128.             end * : INTEGER;
  129.             colorTable * : LONGINT;
  130.         END;
  131.  
  132.         SoundDescriptionPtr * =UNTRACED POINTER TO SoundDescription;
  133.         SoundDescription * =STRUCT(head * : DescriptionHead)
  134.             version * : INTEGER;
  135.             revision * : INTEGER;
  136.             vendor * : LONGINT;
  137.             channels * : INTEGER;
  138.             sampleSize * : INTEGER;
  139.             compression * : INTEGER;
  140.             packetSize * : INTEGER;
  141.             sampleRate * : fp.FixedPoint32;
  142.         END;
  143.  
  144.         DescriptionIndex * =UNTRACED POINTER TO ARRAY MAX(INTEGER) OF DummyDescriptionPtr;
  145.  
  146.         TimeToSample * =STRUCT
  147.             count * : LONGINT;
  148.             duration * : LONGINT;
  149.         END;
  150.         TimeToSampleIndex * =UNTRACED POINTER TO ARRAY MAX(INTEGER) OF TimeToSample;
  151.  
  152.         SyncSampleIndex * =UNTRACED POINTER TO ARRAY MAX(INTEGER) OF LONGINT;
  153.  
  154.         SampleToChunk * =STRUCT
  155.             firstChunk * : LONGINT;
  156.             samplesPerChunk * : LONGINT;
  157.             descriptionID * : LONGINT;
  158.         END;
  159.         SampleToChunkIndex * =UNTRACED POINTER TO ARRAY MAX(INTEGER) OF SampleToChunk;
  160.  
  161.         SampleSizeIndex * =UNTRACED POINTER TO ARRAY MAX(INTEGER) OF LONGINT;
  162.  
  163.         ChunkOffsetIndex * =UNTRACED POINTER TO ARRAY MAX(INTEGER) OF LONGINT;
  164.  
  165.         EditList * =STRUCT
  166.             duration * : LONGINT;
  167.             mediaTime * : LONGINT;
  168.             mediaRate * : fp.FixedPoint32;
  169.         END;
  170.         EditListIndex * =UNTRACED POINTER TO ARRAY MAX(INTEGER) OF EditList;
  171.  
  172.         TrackPtr * =UNTRACED POINTER TO Track;
  173.         Track * =STRUCT (node * : e.Node)
  174.             head * : TrackHeader;
  175.             mediaHead * : MediaHeader;
  176.             initDuration * : LONGINT;
  177.             startOffset * : LONGINT;
  178.             descriptions * : DescriptionIndex;
  179.             descriptionEntries * : LONGINT;
  180.             times * : TimeToSampleIndex;
  181.             timeEntries * : LONGINT;
  182.             syncs * : SyncSampleIndex;
  183.             syncEntries *  : LONGINT;
  184.             samples * : SampleToChunkIndex;
  185.             sampleEntries * : LONGINT;
  186.             sizes * : SampleSizeIndex;
  187.             sizeEntries * : LONGINT;
  188.             offsets * : ChunkOffsetIndex;
  189.             offsetEntries * : LONGINT;
  190.             edits * : EditListIndex;
  191.             editEntries * : LONGINT;
  192.         END;
  193.  
  194.         Atom * =STRUCT
  195.             size * : LONGINT;
  196.             id * : LONGINT;
  197.         END;
  198.  
  199.         AnimInfoPtr * =UNTRACED POINTER TO AnimInfo;
  200.         AnimInfo * =STRUCT
  201.             mvhd * : MovieHeader;
  202.             videoTracks * : e.List;
  203.             audioTracks * : e.List;
  204.         END;
  205. (* \\\ ------------------------------------------------------------------------- *)
  206.  
  207. (* /// -------------------------------- "CONST" -------------------------------- *)
  208. CONST   pauseAnim * =-2;
  209.         skipAnim * =-1 ;
  210.         noError * =0;
  211.         unknownError * =1;
  212.         readError * =2;
  213. (* \\\ ------------------------------------------------------------------------- *)
  214.  
  215. (* /// --------------------------------- "VAR" --------------------------------- *)
  216. VAR     agaOnly - : BOOLEAN;
  217.         cgfxOnly - : BOOLEAN;
  218.         gfxBoth - : BOOLEAN;
  219.         animInfo * : AnimInfoPtr;
  220.         qtFile * : io.ASFile;
  221. (* \\\ ------------------------------------------------------------------------- *)
  222.  
  223. (* /// --------------------- "PROCEDURE CheckGfxAbility()" --------------------- *)
  224. PROCEDURE CheckGfxAbility();
  225.  
  226. VAR     aga: BOOLEAN;
  227.         cyber: BOOLEAN;
  228.  
  229. BEGIN
  230.   aga:=(gfx.hrAgnus IN gfx.base.chipRevBits0) & (gfx.hrDenise IN gfx.base.chipRevBits0) & (gfx.aaAlice IN gfx.base.chipRevBits0) & (gfx.aaLisa IN gfx.base.chipRevBits0);
  231.   cyber:=(cgfx.cgfx#NIL);
  232.   agaOnly:=aga & ~cyber;
  233.   cgfxOnly:=~aga & cyber;
  234.   gfxBoth:=aga & cyber;
  235.   IF ~aga & ~cyber THEN
  236.     d.PrintF("CyberQT needs either AGA chipset or CyberGraphX installed\n");
  237.     HALT(0);
  238.   END;
  239. END CheckGfxAbility;
  240. (* \\\ ------------------------------------------------------------------------- *)
  241.  
  242. BEGIN
  243.   CheckGfxAbility();
  244.   NEW(animInfo);
  245.   es.NewList(animInfo.videoTracks);
  246.   es.NewList(animInfo.audioTracks);
  247. CLOSE
  248.   io.Close(qtFile);
  249. END CyberQTGlobals.
  250.  
  251.